' Opens a font sensitive, very nice file-requester.
'
'� Screen Any screen number from 0 to 7. When using -1, the file requester
' will take a free one.
' Width Width of the requester from 160 to 640. The screen will be
' centered automatically.
' Height Height of the file requester. The minimum is 96 and the maximum
' 256.
' Ypos Gives your control over the position of the selector. If it is
' set to zero, the requester will be centered on the screen.
' Title$ Screen title.
' File$ Default filename.
' Dir$ Default directory. If none is given, the current directory will
' be taken instead.
' Pat$ Searching pattern string. This filters the files in the
' selection window. Pattern matching works only on Kick 2.04 and
' over. Note, that if you don't have Option 'P' enabled, the user
' cannot alter this pattern.
' Ok$ The text, that appears in the positive button.
' Abort$ The text, that is shown in the negative button.
' Font$ Let's you use any font you want. If you select an other bigger
' font, change the dimensions of the screen respectively.
' The font must be entered like so: two digits height and then the
' name: e.g "24Helvetica" or "11Topaz".
' There are a few problems with proportional fonts, but they will
' work as well.
' When Font$ is an empty string, normal Topaz 8 will be chosen.
'
' Options$ Contains some letters with enable or disable a particular
' function. Possible options:
'
' P=Enable Pattern Matching Box. The user now may edit the pattern.
' R=Reread directory on opening. Should be used e.g after saving.
' D=Lists directories only.
' Only use it in conjunction with the R-Option.
' Disable the pattern matching box, as it has no function anymore.
' Q=Disables Date, Time, and Comment strings.
' S=Disables double clicking (e.g for Save-Requesters).
'
' FILEREQNOTIFY
'
' Clears the current filelist because it's not up to date. (e.g
' after saving).
'
' REQUESTER[body$,choices$]
'
' Opens a requester on the current screen, or if it doesn't fit, it opens
' the dialogbox on the next free screen. The result is given in Param.
'
' Body$ Contains the title text of the dialogbox. The text will be word
' wrapped to fit.
' Choices$ Contains the different choices for this requester. The single
' items must be seperated by an "|" character.
'
' Use the other procedures as you like, but don't use the buttons from 1 to
' 25 for your programs.
'
' Short explainations of the other procedures:
'
' CHKMOUSE[xm,ym,lower,upper]
'
' Checks if the mouse is inside a button. Xm,ym are the mouse coordinates
' on the screen. Lower represents the first button to be checked and upper
' the last one. The function will return the button number pressed or 0, if
' no button has been clicked on. Normally, this procedure includes the
' graphical echo and so on, but this can be disabled by setting bit 1 in
' the button flags.
'
' DEFTEX[bt,x1,y1,x2,y2,t$,fl]
'
' Defines a text button. bt is the button number. x1,y1 to x2,y2 define the
' dimensions of the button. t$ is used for the button text. Note that it
' will be shortened, if it doesn't fit, so you'll never get any graphical
' mess on the screen. fl are the button flags:
'
' Bit 0=0: Button is disabled. The user cannot click on it.
' Bit 0=1: Button is enabled. The user can press the button as he wants to.
' Bit 1=0: CHKMOUSE will to the graphical response for the button.
' Bit 1=1: Special Button: the CHKMOUSE routine will return immediately.
' Bit 2=0: Button is drawn in normal video.
' Bit 2=1: The button will be drawn as pressed in inverse video.
'
' Also there are some options for the displayed text: If the first letter
' contains a "{" character, the text will be put out left justified.
' Same with "}", but this time the text will be right justified.
'
' These flags and textoptions are available in every procedure, that uses
' these variables.
'
' DEFBOX[bt,x1,y1,x2,y2,fl]
'
' Defines an empty box as a gadget on the screen. See DEFTEX.
'
' DEFGAD[bt,x1,y1,x2,y2,fl]
'
' Sets up a invisible button. Use it in conjunction with the Bit 2 flag.
'
' DEAGAD[bt]
'
' Ghosts a button out and disables it, so it cannot be clicked on anymore.
'
' ACTGAD[bt]
'
' Re-activates a button again. It will be redrawn with known information.
'
' DISGAD[bt]
'
' Deactivates a gadget, but does not change the graphics. Use it for
' borderless zones.
'
' ENAGAD[bt]
'
' Enables a button again, which was previously deactivated by the DISGAD
' procedure. No graphical change is done.
'
' CLRGAD[bt]
'
' Clears an disables a button on the screen.
'
' PUSHGAD[bt]
'
' Pushes a button in.
'
' RELEGAD[bt]
'
' Releases the gadget again.
'
' FILBOX[x1,y1,x2,y2,se]
'
' Draws a filled bevel box, which will not be included as real gadget.
' x1,y1 to x2,y2 define the dimensions. If se is set to zero, the box
' will be drawn as normal, if se is 1, the box will be drawn inverse.
'
' NEWTEX[bt,t$]
'
' Changes the text inside a button. The button will be updated
' immediately.
'
' TEXBOX[x1,y1,x2,y2,se,t$]
'
' Draws a gadgetbox with some text in it. Like FILBOX, this does not set up
' a clickable gadget. t$ will be cut off, if the text does not fit.
'
' TEX[x1,y1,x2,y2,t$]
'
' Prints out a text, which will be placed inside the rectangular area
' x1,y1 to x2,y2.
'
' DRABOX[x1,y1,x2,y2,se]
'
' Draws the borders of a bevel box. If se is set to 1, the box will be drawn
' as if it has been pressed.
'
' STRGAD[bt,i$]
'
' Allows the user to modify the button text. I$ contains the key, that
' has been entered into the keyboard. If i$ is an empty string, the
' cursor position will be set to the end of the line.
' If the user has pressed the return key, the resulting parameter will be
' -1 otherwise 0.
'
' DEFCLOWIN[bt,x,y]
'
' Draws and defines a CloseWindow-Gadget at coordinates x,y.
'
' DRACLOWIN[x,y]
'
' Only draws a CloseWindow-Gadget.
'
' DEFSCRTBK[bt,x,y]
'
' Draws and defines a ScreenToBack-Gadget at coordinates x,y.
'
' DRASCRTBK[x,y]
'
' Only draws a ScreenToBack-Gadget.
'
' DEFARROWU[bt,x,y]
'
' Draws and defines a ArrowUp-Gadget at coordinates x,y.
'
' DRAARROWU[x,y]
'
' Only draws a ArrowUp-Gadget.
'
' DEFARROWD[bt,x,y]
'
' Draws and defines a ArrowDown-Gadget at coordinates x,y.
'
' DRAARROWD[x,y]
'
' Only draws a ArrowDown-Gadget.
'
' DRASLIDER[bt,lineoff,pagesize,maxlines,obt]
'
' Sets up a slider bar. Therefore gadget obt will be used to create the new
' Button bt. For checking reasons, obt must be lower than bt.
' Lineoff sets the current position of the slider. Pagesize defines the
' size of the slider in units. Maxlines sets the total amount of possible
' positions.
'
' DRAGSLIDER[bt,y,pagesize,maxlines,obt]
'
' Drags a slider to a new position. Therefore you must supply the position
' of the slider handle. Lineoff is returned via Param.
'
Set Buffer 40
If Screen<>-1 Then Screen Close 0
MXFILES=300
Dim FIL$(MXFILES)
'
Dim FB(25,4),FB$(25)
Global FB(),FB$()
TH=8
Global TH
FILEREQ[0,640,256,0,"Load a blab.","","","","Load","Abort","",""]
F$=Param$
REQUEST["You've selected file '"+ Extension_8_02F0(F$)+"' in drawer '"+ Extension_8_03E0(F$)+"', correct?","How did you know that?|Really marvellous!"]
REQUEST["Do you have enjoyed this demonstation?","Yes of course!|Rather boring!|Silly!"]